<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    var arr = [1,2,3,4]
    var arr1 = [5,6,7,8]

    // concat 数组合并，并不会修改源数组，而是得到一个新的数组
    var arr2 = arr.concat(arr1, [10,10,10])
    console.log(arr, arr1)
    console.log(arr2)

    // 以指定字符来把数组每个元素拼接成一个字符串
    var str = arr.join('-')
    console.log(str)

    // 在arr的末尾追加一个或多个值，修改的是arr本身，push方法的返回值是新的长度
    // var len = arr.push(20, 40)
    var len = arr.push(20)
    console.log(arr)
    console.log(len) // 5

    // 把arr的最后一个元素删掉，修改的也是源数组,pop方法的返回值是被删掉的那个元素
    var num = arr.pop()
    console.log(arr)
    console.log(num)

    // shift在开头删除，unshift在开头追加

    // reverse数组元素反转，修改的是源数组
    arr.reverse()
    console.log(arr)

    // arr当中按照指定的索引截取子数组，索引含头不含尾的，不会修改源数组，而是返回一个新数组
    var arr3 = arr.slice(1,3) // 截图到的是索引1和2，不包含3
    console.log(arr3)

    var arr4 = arr.slice(2) // slice方法只传一个参数，意思就是截取到末尾
    console.log(arr4)

    var arr5 = arr.slice(-2, -1) // slice传递负数，负数代表到数第几个
    console.log(arr5)

    var arr6 = arr.slice(1, -2) // 从2开始，截取到倒数第二个结束，不包含到数第二个
    console.log(arr6)

  </script>
</body>
</html>